package com.manong.bookstore.search;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * （一）假设search调用user的findAllUsers方法：
 * 1、编写被调用的远程服务的方法findAllUsers。
 * 2、调用远程服务
 * （1）pom.xml引入openfeign远程调用服务依赖。
 * （2）创建feign文件夹，在里面编写远程服务，告诉SpringCloud哪个接口需要远程调用。
 * （3）声明远程服务里的接口的每一个方法都是调用哪个服务的哪个请求。
 * （4）创建controller文件，在里面创建UserController文件，编写方法说明调用远程服务的结果。
 * （5）在当前文件开启远程调用功能：@EnableFeignClients
 * （6）启动Nacos服务（\nacos-server-1.1.3\nacos\bin\startup.cmd）。
 * （7）启动调用和被调用的微服务。
 * （8）在浏览器输入localhost:8080/search/search/users查看结果。
 *
 * （二）search通过Nacos作为配置中心统一管理配置：
 * 1、common文件的pom.xml引入Nacos Config Starter依赖。
 * 2、新建boostrap.properties文件，引入配置服务名和Nacos服务器地址。
 * 3、在application.properties编写原始属性值。
 * 4、在UserController中编写testNacosConfig方法获取和返回application.properties的属性值。
 * 5、在Nacos的配置列表上新建名为bookstore-search.propertiss的数据集，编写新属性值。
 * 6、在UserController中添加@RefreshScope用于允许Nacos对属性值的实时改动生效。
 * 7、重启微服务search。
 * 8、在浏览器输入localhost:8080/search/search/testNacosConfig查看结果。
 */

// 开启远程调用
@EnableFeignClients(basePackages = "com.manong.bookstore.search.feign")
// 忽略数据源的自动检查
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
// 开启服务注册发现的客户端
@EnableDiscoveryClient
public class bookstoreSearchApplication {

    public static void main(String[] args) {
        SpringApplication.run(bookstoreSearchApplication.class, args);
    }

}
